1. Field of the Invention
The present invention relates generally to "help systems" for application programs operating on computers. In particular, the present invention relates to a system and methods for interactively generating and testing help systems. Still more particularly, the present invention relates to a system that automatically generates a help system from topic records.
2. Description of the Related Art
The use of personal computers has become widespread for a variety of functions in business and education. Along with the proliferation of computers, the number of computer programs has also increased dramatically. The number of programs currently available has become so great that it is difficult for the user to recognize and utilize the full capabilities of each computer program. In many instances the menus, keystrokes and icons used for each program are different. Thus, even if the user knows the functions or operations the program can perform, the user may not be able to execute a function because the icon, menu or keystroke to activate a function is not known. Such usability problems are only increased with each new generation of application programs. Typically, in each new version of an application program, additional functionality is included. Each new version provides a series of new features that the user has at his disposal. However, such additional features make the application more complicated and thus more difficult for the user to fully utilize.
In an attempt to make application programs easier to learn and to fully utilize their functionality, "help systems" have been incorporated into many application programs. Help system is used to refer to a system that operates concurrently with an application program. Each help system is unique to its associated application program and provides an explanation of the functions or significance of icons, menus, commands or other features of the application program. The help systems are typically incorporated into an application program such that they may be selectively employed by the user for explanations of program features while the program is being used.
One problem with existing methods for creating help systems is that they require significant amounts of time and resources. In particular, they require significant amounts of time from highly skilled programmers. Help systems are complicated self-contained programs that must operate independently and concurrently with the application program. Help systems provide a variety of information to the user to explain the program's functionality. Each explanation, format of the explanation, and presentation of the explanation provided by the help system must be directly programmed. For example, the simple process of displaying text of a particular format and size must be specifically detailed in operation steps by programmers when the help system is created. Thus, there is a need for a system and methods that allow help systems to be created in less time and with less understanding of computer programming.
Another problem in creating a help system using the prior art methods is that changes are very difficult to make. Each time a change is made to the help system, the help system must be rewritten, tested and re-compiled to insure that changes to the help system have not affected the operation of other portions of the help system. Moreover, the changes, like the creation of the system itself, must be made directly, thus, highly skilled personnel, as well as a search of the entire help system to locate the appropriate place to make the changes, are required. Therefore, making any changes to a help system is difficult and time consuming.
The prior art has attempted to resolve the problems in creating help systems with a variety of systems referred to as code generators. Such code generators remove some of the difficulty in creating help systems by providing a series of pseudo or formatting codes for performing operations that are common to all help systems. For example, the code generators provide a code for displaying text in centered alignment and a code for text in bold. However, even with such systems, creating help systems continues to be time consuming. With such code generators the syntax must be known and typographical errors and human errors will prevent the help systems from being generated. Because of the use of special codes, the users must be highly skilled and well versed in programming concepts as well as in the code generators themselves. Thus, there continues to be a need for a system and methods for generating and testing help systems that operate in a WYSIWYG (What You See Is What You Get) environment for ease of use.
Therefore, there is a need for a system and methods for automatically generating help systems for computer application programs that significantly simplify the process of writing and testing help systems. Moreover, there is a need for a system and method that can be used interactively, and that provide an interface and structure that make help systems easy to create.